package com.gaga.console.core.service;

import com.gaga.common.enums.LiveRoomStatusType;
import com.gaga.common.enums.StartLiveStepType;
import com.gaga.console.core.entity.dto.PlayDto;
import com.gaga.console.core.entity.dto.StartLiveDto;
import com.gaga.console.core.entity.dto.UpdateRealTimeDataDto;

import java.io.FileNotFoundException;
import java.util.List;

/**
 * <p>
 * 用户信息表 服务类
 * </p>
 *
 * @author liujia
 * @since 2025-03-27
 */
public interface BvAudioPlayService {

    void startLive(StartLiveDto dto) throws FileNotFoundException;

    void stopLive();

    String getLiveRoomStatus();

    void setLiveStatus(LiveRoomStatusType liveRoomStatusType);

    void generate(PlayDto dto) throws FileNotFoundException;

    String getUserCount();

    void updateUserCount(UpdateRealTimeDataDto dto);

    String getStartLiveStep();

    void updateStartLiveStep(StartLiveStepType liveRoomStatusType);

    void decryptModel(List<String> modelNameList);

    void initializeModels();

    void randomSleep();

    /**
     * 控制队列大小等待
     */
    void fixQueneSizeSleep();
    
    /**
     * 根据音频来源控制队列大小等待
     * @param audioSource 音频来源，"mainAudio"为主音频，需要等待；其他为非主音频，不需要等待
     */
    void fixQueneSizeSleep(String audioSource);
}
